package com.bjzsly.star3.xyh.base;


import com.bjzsly.star3.xyh.auth.model.UserInfoWx;
import com.bjzsly.star3.xyh.auth.model.WxAccess;
import com.bjzsly.star3.xyh.auth.model.WxUserOpen;
import okhttp3.ResponseBody;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Query;
import retrofit2.http.Url;
import rx.Observable;

/**
 *
 */
public interface ApiService {
    String HOST = "https://xd-api.xdcool.com:8081";

//    /**
//     * 获取视频数据json
//     *
//     * @param url
//     * @return
//     */
//    @GET
//    Observable<ResultResponse<VideoModel>> getVideoData(@Url String url);
//
//
//    @FormUrlEncoded
//    @POST(URL_NEWS_COLLECT)
//    Observable<ResultResponse<String>> postCollect(@Field("s") String status, @Field("id") String id, @Header("Authorization") String token);
//
//
//    @GET(URL_USER_COLLECT_LIST)
//    Observable<ResultResponse<List<News>>> getCollectList(@Header("Authorization") String token, @Query("p") String page);
//
//    @POST(URL_CLEAN_COLLECT_LIST)
//    Observable<ResultResponse<String>> cleanCollects(@Header("Authorization") String token);
//
//
//    /**
//     * - -------------------------------------------- new add  ----------------------------------------------
//     */
//
//
//    @FormUrlEncoded
//    @POST("http://www.baidu.com")
//    Observable<ResultResponse<User>> authLogin(@Field("udi") String uid,
//                                               @Field("name") String name,
//                                               @Field("icon") String icon,
//                                               @Field("imei") String imei, @Field("device_name") String device_name,
//                                               @Field("android_version") String android_version, @Field("manufacturer") String manufacturer,
//                                               @Field("imsi") String imsi, @Field("mac") String mac,
//                                               @Field("user_agent") String user_agent, @Field("uuid") String uuid);
//
//
//    // 获取评论列表
//    @FormUrlEncoded
//    @POST(URL_GET_NEWS_COMMENT)
//    Observable<ResultResponse<List<Comment>>> getComList(@Field("id") String id, @Field("p") String p, @Header("Authorization") String token);
//
//
//    //发布评论
//    @FormUrlEncoded
//    @POST(URL_NEWS_DO_COMMENT)
//    Observable<ResultResponse<List<String>>> postComment(@Field("id") String news_id, @Field("c") String content, @Header("Authorization") String token);
//
//    //TODO 需要上传版本号
//    @GET(URL_CHECK_VERSION)
//    Observable<ResultResponse<Version>> checkVersionInfo(@Query("c") String channelId);
//
//
//    //TODO
//    @GET(URL_CHECK_VERSION)
//    Observable<ResultResponse<Version>> checkVersionInfo(@Query("c") String channelId, @Query("v") String version);
//
//
//    @FormUrlEncoded
//    @POST(URL_NEWS_ZAN)
//    Observable<ResultResponse<String>> postNewsZan(@Field("id") String id, @Header("Authorization") String token, @Field("s") String s, @Field("comment_id") String commentId);


    @GET
    Observable<ResponseBody> downloadImage(@Url String fileUrl);

//    /**
//     * ------------------------------------------------       新登陆流程--------------------------------------------------
//     */
//
//
//    /**
//     * 手机登录
//     */
//    @FormUrlEncoded
//    @POST(URL_USER_LOGIN)
//    Observable<ResultResponse<User>> loginMobile(@Field("mobile") String mobile, @Field("password") String passward, @Field("uuid") String uuid, @Field("reg_id") String reg_id);
//
//    /**
//     * 获取短信验证码
//     * scene 1获取验证码  2修改密码验证码
//     */
//
//    @GET(URL_GET_SMS_CODE)
//    Observable<ResultResponse<Object>> getSmsCode(@Query("mobile") String mobile, @Query("scene") String scene, @Query("uuid") String uuid, @Query("app") String app);
//
//    /**
//     * 获取图片验证码
//     */
//    @FormUrlEncoded
//    @POST(URL_GET_IMG_CODE)
//    Observable<ResultResponse<ImgCode>> getImgCode(@Field("uuid") String uuid);
//
//    /**
//     * 用户注册
//     */
//
//    @FormUrlEncoded
//    @POST(URL_REGISTER_MOBIILE)
//    Observable<ResultResponse<String>> registerMobile(@Field("mobile") String mobile, @Field("uuid") String uuid, @Field("password") String passward, @Field("rePassword") String rePassword, @Field("imgCode") String imgCode, @Field("code") String smsCode, @Field("device_json") String deviceJson, @Field("cid") String cid);
//
//
//    @FormUrlEncoded
//    @POST(URL_VERTIFY_MOBILE)
//    Observable<ResultResponse<VertifyToken>> vertifyMobile(@Field("mobile") String mobile, @Field("uuid") String uuid, @Field("imgCode") String imgCode, @Field("code") String code);
//
//    @FormUrlEncoded
//    @POST(URL_MODIFY_PASSWORD)
//    Observable<ResultResponse<String>> modifyPassword(@Field("mobile") String mobile, @Field("token") String token, @Field("password") String newPassword, @Field("rePassword") String rePassword);
//
//    @FormUrlEncoded
//    @POST(LOGIN_CHECK_UUID)
//    Observable<ResultResponse<CheckUuid>> getServiceUUID(@Field("mobile") String mobile, @Field("password") String Password);
//
//    @GET(URL_GET_USER_COINS)
//    Observable<ResultResponse<SignUserInfo>> getUserCoins(@Header("Authorization") String token);
//
//    @GET(URL_GET_COINS_LISTS)
//    Observable<ResultResponse<List<SignCoinData>>> getCoinList(@Header("Authorization") String token);
//
//    @FormUrlEncoded
//    @POST(URL_TASK_SIGN_IN)
//    Observable<ResultResponse<String>> doSignTask(@Header("Authorization") String token, @Field("day") String day, @Field("coin") String coin, @Field("task_id") String taskId);
//
//    @GET(URL_TASK_TASK_TYPE)
//    Observable<ResultResponse<List<TaskType>>> getTaskType();






    //微信登录相关
    String WX_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/access_token";
    String WX_REFRESH_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/refresh_token";
    String WX_GET_USER_INFO = "https://api.weixin.qq.com/sns/userinfo";
    String AUTH_CHECK_BIND_PHONE = "login/wx_bind_phone";
    String AUTH_REGISETER = "login/third_reg";

    String AUTH_LOGIN = "login/third_login";



    @GET(WX_ACCESS_TOKEN_URL)
    Observable<WxAccess> getWxAccessToken(@Query("appid") String appid, @Query("secret") String secert, @Query("code") String code, @Query("grant_type") String grantType);

    @GET(WX_REFRESH_TOKEN_URL)
    Observable<WxUserOpen> getWxOpenId(@Query("appid") String appId, @Query("refresh_token") String refreshToken, @Query("grant_type") String grantType);

    @GET(WX_GET_USER_INFO)
    Observable<UserInfoWx> getWxUserInfo(@Query("access_token") String accessToken, @Query("openid") String openId);



//    @GET(URL_UPLOAD_SHARE_TASK_INFO)
//    Observable<ResultResponse<CoinBean>> doShareTask(@Header("Authorization") String token, @Query("taskId") String taksId, @Query("shareId") String shareId, @Query("t") String t);


    @GET("http://119.23.140.155:8081/test/test_jwt")
    Observable<Object> testJwt(@Header("Authorization") String auth);


}
